<?php
if ((!defined('NV_SYSTEM')) AND (!defined('NV_ADMIN'))) {
    Header("Location: ../index.php");
    exit;
}

define('GOOGLE_MAGIC', 0xE6359A60);
global $nukeurl;

$content = "<table border=\"0\" align=\"center\">";
$content .= "<tr><td><form action=\"index.php\" method=\"post\"><input type=\"text\" name=\"g_url\" value=\"".$_POST['url']."\" size=\"15\" maxlength=\"50\"></td><td><input type=\"submit\" value=\"OK\"></td></tr>";
if (isset($_POST['g_url'])) $content .= "<tr><td colspan=\"2\" align=\"center\"><font color=\"green\"><b>Page Rank</font> - ".getPR_url($_POST['g_url'])."</b></td></tr>";
$content .= "</form></table>";

function zeroFill($a, $b) {
	$z = hexdec(80000000);
	if ($z & $a) {
		$a = ($a >> 1);
		$a &= (~$z);
		$a |= 0x40000000;
		$a = ($a>>($b-1));
	} else {
		$a = ($a>>$b);
	}
	return $a;
}

function mix($a, $b, $c) {
	$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
	$b -= $c; $b -= $a; $b ^= ($a<<8);
	$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
	$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
	$b -= $c; $b -= $a; $b ^= ($a<<16);
	$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
	$a -= $b; $a -= $c; $a ^= (zeroFill($c,3)); 
	$b -= $c; $b -= $a; $b ^= ($a<<10);
	$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
	return array($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
	if (is_null($length)) $length = sizeof($url);
	$a = $b = 0x9E3779B9;
	$c = $init;
	$k = 0;
	$len = $length;
	while($len >= 12) {
		$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
		$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
		$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
		$mix = mix($a,$b,$c);
		$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
		$k += 12;
		$len -= 12;
	}
	$c += $length;
	switch($len) {
		case 11: $c+=($url[$k+10]<<24);
		case 10: $c+=($url[$k+9]<<16);
		case 9 : $c+=($url[$k+8]<<8);
		case 8 : $b+=($url[$k+7]<<24);
		case 7 : $b+=($url[$k+6]<<16);
		case 6 : $b+=($url[$k+5]<<8);
		case 5 : $b+=($url[$k+4]);
		case 4 : $a+=($url[$k+3]<<24);
		case 3 : $a+=($url[$k+2]<<16);
		case 2 : $a+=($url[$k+1]<<8);
		case 1 : $a+=($url[$k+0]);
	}
	$mix = mix($a,$b,$c);
	return $mix[2];
}

function strord($string) {
	for ($i=0; $i<strlen($string); $i++) {
		$result[$i] = ord($string{$i});
	}
	return $result;
}

function get_pr($url) {
	$result = array("", -1);
	if (($url != "") && ($url != "http://")) {
		if (substr(strtolower($url), 0, 7) != "http://") $url="http://".$url;
		$url = "info:".$url;
		$checksum = GoogleCH(strord($url));
		$google_url = sprintf("http://www.google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=".$url,$checksum);
		$contents = "";
		$handle = fopen($google_url, "rb");
		$contents = '';
		while (!feof($handle)) {
			$contents.= fread($handle, 8192);
		}
		fclose($handle);
		$p = explode(":", $contents);
		if (isset($p[2])) $result[1]=$p[2];
	}
	return $result;
}

function getPR_url($url) {
	if (eregi('^http://www.', $url)) {
		$url_www = str_replace('http://www.', 'http://',$url);
	} else {
		$url_www = str_replace('http://', 'http://www.',$url);
	}
	$pr = get_pr($url);
	$output = $pr[0];
	$pagerank = $pr[1];
	sleep(1);
	$pr = get_pr($url_www);
	$output_www = $pr[0];
	$pagerank_www = $pr[1];
	if ($pagerank < $pagerank_www) $pagerank = $pagerank_www;
	if ($pagerank == -1) $pagerank = 0;
	return intval($pagerank);
}
?>